The present application relates generally to computer systems, and more specifically to virtual machines.
A virtual machine (VM) is an environment, usually a program or operating system, which does not physically exist but is present within another environment. In this context, the VM is called a “guest” while the environment it runs within is called a “host.” One host environment can often run multiple isolated VMs at once. Furthermore, the VM is a virtualized representation of physical computer hardware such as a processor, memory, or an input/output device. The VM may map the virtualized component's interface and visible resources onto the interface and resources of the underlying real hardware. Consequently, the real hardware may appear as a different virtual system or even as multiple virtual systems. As VMs are isolated from each other, they prevent undesirable interactions or outright conflicts between applications. Furthermore, VMs are separated from the physical resources they use, allowing the host environment to dynamically assign resources among the VMs. Virtual machines allow flexible and efficient use of hardware resources. By increasing hardware utilization and decreasing capital and operational costs, virtual machines have become an integral part of computing environments.